# -*- coding: utf-8 -*-
# @Time    : 2021/4/30 9:39
# @Author  : yejing
# @Email   : 458663810@qq.com
# @File    : 02.作业.py
# @Software: PyCharm

#查找一个文件中最长的行，输出长度

def longest():
    print(max(len(line.strip()) for line in open("big.data")))
longest()


#1、如何判断一个对象是可迭代对象、迭代器对象或生成器
# 看该对象的属性，如果有__iter__的属性说明是可迭代对象
# 如果既有__iter__属性又有__next__属性说明是迭代器
# 有yield关键字则为生成器
#
# 2、迭代器与生成器的区别
# 迭代器需要手动实现__iter__和__next__方法，
# 而生成器不需要手动生成，只需要一个yield的关键字即可
#
# 3、可迭代对象与迭代器的区别
# 可迭代对象的属性中有__iter__的方法。
# 而迭代器中既有__iter__的方法也有__next__的方法
#
# 4、如何定义一个生成器
# 在函数中添加yield的关键字，使之变成生成器函数，
# 当程序遇到yield关键字时就会结束函数的调用，
# 下次再运行时会在该结束的下一句语句开始运行
#
# 5、如何获取可迭代对象
# 进行for循环的遍历获取